package com.groupfour.attendancemanagementsystem.service.impl;
/**
 * @version: V1.0
 * @author: 章珑赢
 * @methodsName: PersonaRatingServiceImpl
 * @description: 查询所有小组评分的接口实现类
 * @param:  无
 * @return: Object
 * @throws: 无
 **/
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.groupfour.attendancemanagementsystem.dao.PersonaRatingDao;
import com.groupfour.attendancemanagementsystem.entity.DTO.PersonalDetailDTO;
import com.groupfour.attendancemanagementsystem.entity.VO.HomeWorkDetailsVO;
import com.groupfour.attendancemanagementsystem.entity.VO.PersonaRatingVO;
import com.groupfour.attendancemanagementsystem.entity.VO.PersonalDetailVO;
import com.groupfour.attendancemanagementsystem.service.PersonaRatingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

@Service
public class PersonaRatingServiceImpl implements PersonaRatingService {
    @Autowired
    private  PersonaRatingDao personaRatingDao;
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectAllPersonaRating
     * @description: 查询所有个人评分的接口实现类
     * @param:  无
     * @return: PersonaRatingVO集合
     * @throws: 无
     **/
    @Override
    public List<PersonaRatingVO> SelectAllPersonaRating(Integer pageNum,Integer pageSize,String userCode) {
        //        清理pageHelper缓存
        PageHelper.clearPage();
        //        创建分页对象
        PageHelper.startPage(pageNum,pageSize);
        //        查询结果
        PageInfo<PersonaRatingVO> personaRatingVOPageInfo=new PageInfo<>(personaRatingDao.SelectAllPersonaRating(userCode));
        return personaRatingVOPageInfo.getList();
    }
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectByProjectNameOrGroupName
     * @description: 根据项目名称或小组名称查询所有个人评分的接口实现类
     * @param:  projectName(项目名称)，groupName(小组评分)，pageNum（页码），pageSize（每页条数），userCode（用户编号）
     * @return: PersonaRatingVO集合
     * @throws: 无
     **/
    @Override
    public List<PersonaRatingVO> SelectByProjectNameOrGroupName(String projectName, String groupName,Integer pageNum,Integer pageSize,String userCode) {
        //        清理pageHelper缓存
        PageHelper.clearPage();
        //        创建分页对象
        PageHelper.startPage(pageNum,pageSize);
        //        查询结果
        PageInfo<PersonaRatingVO> personaRatingVOPageInfo=new PageInfo<>(personaRatingDao.SelectByProjectNameOrGroupName(projectName,groupName,userCode));
        return personaRatingVOPageInfo.getList();
    }
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectPersonalDetails
     * @description: 查询个人详情信息
     * @param: studentCode（学生学号），groupCode（项目组编号）
     * @return: PersonalDetailVO实体类
     * @throws: 无
     **/
    @Override
    public PersonalDetailVO SelectPersonalDetails(String studentCode,String groupCode) {
         PersonalDetailVO personalDetailVO = personaRatingDao.SelectPersonalDetails(studentCode,groupCode);
         List<PersonalDetailDTO> personalDetailDTOS = personaRatingDao.SelectGroupTrainTeacher(groupCode,studentCode);
         personalDetailVO.setTrainTeacher(personalDetailDTOS);
        return personalDetailVO;
    }
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectPersonalDetails
     * @description: 查询作业列表
     * @param: studentCode（学生学号） ，pageNum（页码），pageSize（每页条数）
     * @return: HomeWorkDetailsVO实体类集合
     * @throws: 无
     **/
    @Override
    public List<HomeWorkDetailsVO> SelectHomeWorks(String studentCode,Integer pageNum,Integer pageSize,String groupCode) {
        //        清理pageHelper缓存
        PageHelper.clearPage();
        //        创建分页对象
        PageHelper.startPage(pageNum,pageSize);
        //        查询结果
        PageInfo<HomeWorkDetailsVO> personaRatingVOPageInfo=new PageInfo<>(personaRatingDao.SelectHomeWorks(studentCode,groupCode));
                ;
        return personaRatingVOPageInfo.getList();
    }
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: DoPersonalGradeAndComment
     * @description: 进行小组打分和评论
     * @param:  studentCode（学生学号），oneselfSyntnesisScore（个人综合分数），oneselfComment（个人评论）
     * @return: boolean
     * @throws: 无
     **/
    @Override
    @ResponseBody
    public boolean DoPersonalGradeAndComment(Integer oneselfSyntnesisScore, String oneselfComment, String studentCode) {
        return personaRatingDao.DoPersonalGradeAndComment(oneselfSyntnesisScore,oneselfComment,studentCode);
    }

}
